OAuth 2.0 认证的原理与实践 |
您所在的位置:网站首页 › oauth2 原理 › OAuth 2.0 认证的原理与实践 |
OAuth 2.0 认证的原理与实践
2017-03-24 OAuth2 Spring Security GitHub OAuth2 Spring Security Thymeleaf GitHub Gradle 使用 OAuth 2.0 认证的的好处是显然易见的。你只需要用同一个账号密码,就能在各个网站进行访问,而免去了在每个网站都进行注册的繁琐过程。 本文将介绍 OAuth 2.0 的原理,并基于 Spring Security 和 GitHub 账号,来演示 OAuth 2.0 的认证的过程。 什么是 OAuth 2.0OAuth 2.0 的规范可以参考 RFC 6749(http://tools.ietf.org/html/rfc6749)。 OAuth 是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片、视频、联系人列表等),而无需将用户名和密码提供给第三方应用。目前,OAuth 的最新版本为 2.0。 OAuth 允许用户提供一个令牌,而不是用户名和密码来访问他们存放在特定服务提供者的数据。每一个令牌授权一个特定的网站(例如,视频编辑网站)在特定的时段(例如,接下来的2小时内)内访问特定的资源(例如仅仅是某一相册中的视频)。这样,OAuth 允许用户授权第三方网站访问他们存储在另外的服务提供者上的信息,而不需要分享他们的访问许可或他们数据的所有内容。 OAuth 2.0 的核心概念OAuth 2.0 主要有4类角色: resource owner:资源所有者,指终端的“用户”(user)。 resource server:资源服务器,即服务提供商存放受保护资源。访问这些资源,需要获得访问令牌(access token)。它与认证服务器,可以是同一台服务器,也可以是不同的服务器。如果,我们访问新浪博客网站,那么如果使用新浪博客的账号来登录新浪博客网站,那么新浪博客的资源和新浪博客的认证都是同一家,可以认为是同一个服务器。如果,我们是新浪博客账号去登录了知乎,那么显然知乎的资源和新浪的认证不是一个服务器。 client:客户端,代表向受保护资源进行资源请求的第三方应用程序。 authorization server: 授权服务器, 在验证资源所有者并获得授权成功后,将发放访问令牌给客户端。 OAuth 2.0 的认证流程认证流程如下: +--------+ +---------------+ | |--(A)- Authorization Request ->| Resource | | | | Owner | | || Authorization | | Client | | Server | | || Resource | | | | Server | | | |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |